package com.github.shiqiyue.app.modules.sys.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import com.github.shiqiyue.app.api.sapi.req.user.UserPageReq;
import com.github.shiqiyue.app.modules.sys.entity.User;
import org.springframework.security.core.userdetails.UserDetailsService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wenyao.wu
 * @since 2018-10-11
 */
public interface IUserService extends IService<User>, UserDetailsService {

    /***
     * 通过[name]查询一个User
     * @param name
     * @return
     */
    User findByName(String name);

    /***
     * 通过[name]查询数量
     * @param name
     * @return
     */
    Integer countByName(String name);

    /***
     * 通过[name]查询数量
     * @param name
     * @param id
     * @return
     */
    Integer countByName(String name, Long id);

    /***
     * 用户列表-分页
     * @param query
     * @return
     */
    IPage<User> page(UserPageReq query);

    /***
     * 根据用户信息获取权限
     * @param user
     * @return
     */
    List<String> getPermissionsByUser(User user);

}
